export default {
      /** ************************************
   * 封装好了的缓存功能
   * 参数说明：
   * key - 缓存键名
   * value - 缓存值，不提供此值时表示取得数据；提供null表示要将此缓存删除掉；提供其他非空值表示要缓存的值，会生成缓存
   * cacheTime - 要缓存多长时间，单位：秒，默认永久缓存，只有当 value 不为空值时有效
   * disableCache - 是否要强制缓存，因为我们系统是会判断是否开启调试模式的，当开启了调试模式时，一切数据都不缓存，此时为了开发调试缓存功能就需要用到此是否强制缓存
   ************************************ */
  // eslint-disable-next-line consistent-return
  wxCache(key, value, cacheTime, disableCache) {
    key = `${key}_${wx.getStorageSync('shopId')}`

    var value = value !== undefined ? value : ''
    var cacheTime = cacheTime != undefined ? cacheTime : 0
    var disableCache = disableCache != undefined ? disableCache : false


    const curTime = new Date().getTime()
    if (disableCache == true) return '' // 需要关闭缓存时，传true，默认开启
    if (value == '') { // 此时为取值
      const tmp = wx.getStorageSync(key) || ''
      if (tmp == '') {
        return ''
      }
      if (tmp.etime == 0) { // 永久缓存
        return tmp.data
      }
      if (tmp.etime > curTime) { // 缓存时间大于当前时间，表示可用
        return tmp.data
      } // 缓存时间小于等于当前时间，表示已过期
      return ''
    } // 此时为设置值
    if (value == null) { // 此时表示清空值
      try {
        wx.removeStorageSync(key)
      } catch (e) {}
    } else { // 此时设置缓存
      let cacheData = {}
      let etime = 0
      if (cacheTime > 0) { // 设置了缓存时间
        etime = curTime + (cacheTime * 1000)
      }
      cacheData = {
        etime,
        data: value
      }
      wx.setStorageSync(key, cacheData)
    }
  }
}